package com.shujia.scala

import java.util
import java.util.function.Consumer

object Demo14Set {
  def main(args: Array[String]): Unit = {

    /**
      *
      * set  唯一  无序
      *
      */

    val list = List(1, 2, 3, 1, 2, 3, 4, 55)

    println(list)

    //去重
    println(list.distinct)
    println(list.toSet)


    val set = Set(1, 2, 3, 1, 2, 3, 4, 55)


    /**
      * set  集合没有sort方法
      *
      */
    set.foreach(println)


    /**
      * scala使用java集合
      *
      * java集合在scala语法中不能使用scala的方式进行遍历
      *
      */

    val list1 = new util.ArrayList[String]()

    list1.add("数加")
    list1.add("java")
    list1.add("scala")
    list1.add("python")

    list1.toArray.foreach(println)

    //导入一个隐式转换    java集合就可以和scala集合进行相互转换了
    import scala.collection.JavaConverters._

    //java集合转换成scala集合
    list1.asScala.foreach(println)

    //scala集合转换成java集合
    val javalist = list.asJava


    /**
      * 可变list
      *
      */

    import scala.collection.mutable

    val lb = mutable.ListBuffer[String]()

    lb.+=("数加") //在集合后面增加一个元素

    lb.+=:("java") //在集合前面增加一个元素

    println(lb)

    lb.++=(List("scala", "python")) //增加多个元素
    println(lb)

    lb.-=("java") //删除元素

    println(lb)

    lb.insert(2, "hadoop") //指定下标插入一个元素

    println(lb)

    lb.update(2, "hive") //指定下标替换元素

    println(lb)

    lb.clear() //清空
    println(lb)


    val l = List(1, 2, 4)

    //在集合前面增加一个元素  返回一个新的集合
    val l2 = 4 :: l

    println(l2)

    //Nil  空的list

    val l3 = 2 :: 1 :: Nil

    println(l3)


  }
}
